home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / OSA.a < prev    next >
Text File  |  1996-05-01  |  56KB  |  1,757 lines

  1. ;
  2. ;    File:        OSA.a
  3. ;
  4. ;    Contains:    AppleScript Client Interfaces.
  5. ;
  6. ;    Version:    Technology:    AppleScript 1.1
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__OSA__') = 'UNDEFINED' THEN
  19. __OSA__ SET 1
  20.  
  21.     IF &TYPE('__ERRORS__') = 'UNDEFINED' THEN
  22.     include 'Errors.a'
  23.     ENDIF
  24.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  25.     include 'AppleEvents.a'
  26.     ENDIF
  27.     IF &TYPE('__AEOBJECTS__') = 'UNDEFINED' THEN
  28.     include 'AEObjects.a'
  29.     ENDIF
  30.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  31.     include 'Components.a'
  32.     ENDIF
  33.     IF FOR_SYSTEM7_ONLY THEN
  34. ;
  35. ;*************************************************************************
  36. ;    Types and Constants
  37. ;*************************************************************************
  38. ;
  39. ;
  40. ;    The componenent manager type code for components that
  41. ;        support the OSA interface defined here. 
  42. ;
  43. ;  0x6f736120 
  44.  
  45. kOSAComponentType                EQU        'osa '
  46. ;  0x73637074 
  47.  
  48. kOSAGenericScriptingComponentSubtype EQU 'scpt'
  49. ;     Type of script document files.    
  50. ;  0x6f736173 
  51.  
  52. kOSAFileType                    EQU        'osas'
  53. ;
  54. ;        Suite and event code of the RecordedText event. 
  55. ;        (See OSAStartRecording, below.)
  56. ;
  57. ;  0x61736372 
  58.  
  59. kOSASuite                        EQU        'ascr'
  60. ;  0x72656364 
  61.  
  62. kOSARecordedText                EQU        'recd'
  63. ;  Selector returns boolean 
  64. ;  0x6d6f6469 
  65.  
  66. kOSAScriptIsModified            EQU        'modi'
  67. ;  Selector returns boolean 
  68. ;  0x63736372 
  69.  
  70. kOSAScriptIsTypeCompiledScript    EQU        'cscr'
  71. ;  Selector returns boolean 
  72. ;  0x76616c75 
  73.  
  74. kOSAScriptIsTypeScriptValue        EQU        'valu'
  75. ;  Selector returns boolean 
  76. ;  0x636e7478 
  77.  
  78. kOSAScriptIsTypeScriptContext    EQU        'cntx'
  79. ;  Selector returns a DescType which may be passed to OSACoerceToDesc 
  80. ;  0x62657374 
  81.  
  82. kOSAScriptBestType                EQU        'best'
  83. ;
  84. ;        This selector is used to determine whether a script has source 
  85. ;        associated with it that when given to OSAGetSource, the call will not
  86. ;        fail.  The selector returns a boolean.
  87. ;
  88. ;  0x67737263 
  89.  
  90. kOSACanGetSource                EQU        'gsrc'
  91.  
  92. typeOSADialectInfo                EQU        'difo'                ;  0x6469666f   
  93. keyOSADialectName                EQU        'dnam'                ;  0x646e616d   
  94. keyOSADialectCode                EQU        'dcod'                ;  0x64636f64   
  95. keyOSADialectLangCode            EQU        'dlcd'                ;  0x646c6364   
  96. keyOSADialectScriptCode            EQU        'dscd'                ;  0x64736364   
  97. ; typedef ComponentResult                 OSAError
  98.  
  99. ;  Under the Open Scripting Architecture all error results are longs 
  100. ; typedef unsigned long                 OSAID
  101.  
  102. ;
  103. ;        OSAIDs allow transparent manipulation of scripts associated with
  104. ;         various scripting systems.
  105. ;
  106.  
  107. kOSANullScript                    EQU        0
  108. ;  No -script constant. 
  109.  
  110. kOSANullMode                    EQU        0                    ; sounds better 
  111. kOSAModeNull                    EQU        0                    ; tastes consistent 
  112. ;
  113. ;        Some routines take flags that control their execution.  This constant
  114. ;        declares default mode settings are used.
  115. ;
  116. ;
  117. ;*************************************************************************
  118. ;    Standard Script Errors
  119. ;**************************************************************************
  120. ;    It is recommended that scripting components use the following set of error
  121. ;    codes to signal failure when applicable.  This enables applications that
  122. ;    use the OSA API to deal with some class of script errors in a less than 
  123. ;    ad hoc manner.  Scripting components are of course encouraged to return
  124. ;    component-specific errors when these don't apply.
  125. ;*************************************************************************
  126. ;
  127. ;
  128. ;        Dynamic errors:
  129. ;
  130. ;    These errors result from data-dependent conditions and are typically
  131. ;    signaled at runtime.
  132. ;
  133. ;
  134. ;        Signaled when a value can't be coerced to the desired type. Similar
  135. ;          to errOSATypeError except results from coercion.
  136. ;
  137.  
  138. errOSACantCoerce                EQU        -1700
  139. ;  Signaled when an object is not found in a container 
  140.  
  141. errOSACantAccess                EQU        -1728
  142. ;
  143. ;        Signaled when an object cannot be set in a container.  Same as 
  144. ;          AERegistry error errAEWriteDenied.
  145. ;
  146.  
  147. errOSACantAssign                EQU        -10006
  148. ;
  149. ;        Signaled by user scripts or applications when no actual error code
  150. ;          is to be returned.  Simply means "an error has occurred".  Most useful
  151. ;          in conjunction with an error message from the application.
  152. ;
  153.  
  154. errOSAGeneralError                EQU        -2700
  155. ;  Signaled when there is an attempt to divide by zero 
  156.  
  157. errOSADivideByZero                EQU        -2701
  158. ;  Signaled when integer or real value is too large to be represented 
  159.  
  160. errOSANumericOverflow            EQU        -2702
  161. ;
  162. ;        Signaled when application can't be launched or when it is remote and
  163. ;          program linking is not enabled.
  164. ;
  165.  
  166. errOSACantLaunch                EQU        -2703
  167. ;  Signaled when an application can't respond to AppleEvents 
  168.  
  169. errOSAAppNotHighLevelEventAware    EQU        -2704
  170. ;  Signaled when an application's terminology resource is not readable 
  171.  
  172. errOSACorruptTerminology        EQU        -2705
  173. ;  Signaled when the runtime stack overflows 
  174.  
  175. errOSAStackOverflow                EQU        -2706
  176. ;  Signaled when a runtime internal data structure overflows 
  177.  
  178. errOSAInternalTableOverflow        EQU        -2707
  179. ;
  180. ;        Signaled when an intrinsic limitation is exceeded for the size of 
  181. ;          a value or data structure.
  182. ;
  183.  
  184. errOSADataBlockTooLarge            EQU        -2708
  185.  
  186. errOSACantGetTerminology        EQU        -2709
  187.  
  188. errOSACantCreate                EQU        -2710
  189. ;
  190. ;        Component-specific dynamic script errors:
  191. ;
  192. ;    The range -2720 thru -2739 is reserved for component-specific runtime errors.
  193. ;    (Note that error codes from different scripting components in this range will
  194. ;    overlap.)
  195. ;
  196. ;
  197. ;        Static errors:
  198. ;
  199. ;    These errors comprise what are commonly thought of as parse and compile-
  200. ;    time errors.  However, in a dynamic system (e.g. AppleScript) any or all
  201. ;    of these may also occur at runtime.
  202. ;
  203. ;  Signaled when data was not the right type and coercion is not allowed 
  204.  
  205. errOSATypeError                    EQU        -1703
  206. ;  Signaled when a message was sent to an object that didn't handle it 
  207.  
  208. OSAMessageNotUnderstood            EQU        -1708
  209. ;
  210. ;        Signaled when a function to be returned doesn't exist.  (Probably only
  211. ;          useful in languages with first-class functions that distinguish between
  212. ;          functions and other values (two name spaces). This is different from
  213. ;          errOSAMessageNotUnderstood, which may be signaled when the method is
  214. ;          invoked.
  215. ;
  216.  
  217. OSAUndefinedHandler                EQU        -1717
  218. ;  Signaled when a container can never have the requested object 
  219.  
  220. OSAIllegalAccess                EQU        -1723
  221. ;  Signaled when index was out of range. Specialization of errOSACantAccess. 
  222.  
  223. OSAIllegalIndex                    EQU        -1719
  224. ;  Signaled when a range is screwy. Specialization of errOSACantAccess. 
  225.  
  226. OSAIllegalRange                    EQU        -1720
  227. ;
  228. ;        Signaled when an object can never be set in a container.  Same as 
  229. ;          AERegistry error errAENotModifiable.
  230. ;
  231.  
  232. OSAIllegalAssign                EQU        -10003
  233. ;
  234. ;        Signaled when a syntax error occurs. (e.g. "Syntax error" or
  235. ;         "<this> can't go after <that>").
  236. ;
  237.  
  238. OSASyntaxError                    EQU        -2740
  239. ;
  240. ;        Signaled when another form of syntax was expected. (e.g. "expected
  241. ;          a <type> but found <this>").
  242. ;
  243.  
  244. OSASyntaxTypeError                EQU        -2741
  245. ;  Signaled when a name or number is too long to be parsed 
  246.  
  247. OSATokenTooLong                    EQU        -2742
  248. ;
  249. ;        Signaled when a parameter is missing for a function invocation.  Note
  250. ;          that in some languages, this error may occur at runtime.
  251. ;
  252.  
  253. OSAMissingParameter                EQU        -1701
  254. ;
  255. ;        Signaled when function is called with the wrong number of parameters,
  256. ;          or a parameter pattern cannot be matched.
  257. ;
  258.  
  259. OSAParameterMismatch            EQU        -1721
  260. ;
  261. ;        Signaled when a formal parameter, local variable, or instance variable
  262. ;          is specified more than once.
  263. ;
  264.  
  265. OSADuplicateParameter            EQU        -2750
  266. ;
  267. ;        Signaled when a formal parameter, local variable, or instance variable
  268. ;          is specified more than once.
  269. ;
  270.  
  271. OSADuplicateProperty            EQU        -2751
  272. ;
  273. ;        Signaled when more than one handler is defined with the same name in 
  274. ;          a scope where the language doesn't allow it.
  275. ;
  276.  
  277. OSADuplicateHandler                EQU        -2752
  278. ;  Signaled when a variable is accessed that has no value 
  279.  
  280. OSAUndefinedVariable            EQU        -2753
  281. ;
  282. ;        Signaled when a variable is declared inconsistently in the same scope,
  283. ;          such as both local and global.
  284. ;
  285.  
  286. OSAInconsistentDeclarations        EQU        -2754
  287. ;
  288. ;        Signaled when illegal control flow occurs in an application (no catcher
  289. ;          for throw, non-lexical loop exit, etc.).
  290. ;
  291.  
  292. OSAControlFlowError                EQU        -2755
  293. ;
  294. ;        Component-specific static script errors:
  295. ;
  296. ;    The range -2760 thru -2779 is reserved for component-specific parsing and
  297. ;    compile-time errors. (Note that error codes from different scripting
  298. ;    components in this range will overlap.)
  299. ;
  300. ;
  301. ;        Dialect-specific script errors:
  302. ;
  303. ;    The range -2780 thru -2799 is reserved for dialect specific error codes for
  304. ;    scripting components that support dialects. (Note that error codes from
  305. ;    different scripting components in this range will overlap, as well as error
  306. ;    codes from different dialects in the same scripting component.)
  307. ;
  308. ;
  309. ;*************************************************************************
  310. ;    OSA Interface Descriptions
  311. ;**************************************************************************
  312. ;    The OSA Interface is broken down into a required interface, and several
  313. ;    optional interfaces to support additional functionality.  A given scripting
  314. ;    component may choose to support only some of the optional interfaces in
  315. ;    addition to the basic interface.  The OSA Component Flags may be used to 
  316. ;    query the Component Manager to find a scripting component with a particular
  317. ;    capability, or determine if a particular scripting component supports a 
  318. ;    particular capability.
  319. ;*************************************************************************
  320. ;
  321. ;  OSA Component Flags: 
  322.  
  323. kOSASupportsCompiling            EQU        $0002
  324. kOSASupportsGetSource            EQU        $0004
  325. kOSASupportsAECoercion            EQU        $0008
  326. kOSASupportsAESending            EQU        $0010
  327. kOSASupportsRecording            EQU        $0020
  328. kOSASupportsConvenience            EQU        $0040
  329. kOSASupportsDialects            EQU        $0080
  330. kOSASupportsEventHandling        EQU        $0100
  331. ;  Component Selectors: 
  332.  
  333. kOSASelectLoad                    EQU        $0001
  334. kOSASelectStore                    EQU        $0002
  335. kOSASelectExecute                EQU        $0003
  336. kOSASelectDisplay                EQU        $0004
  337. kOSASelectScriptError            EQU        $0005
  338. kOSASelectDispose                EQU        $0006
  339. kOSASelectSetScriptInfo            EQU        $0007
  340. kOSASelectGetScriptInfo            EQU        $0008
  341. kOSASelectSetActiveProc            EQU        $0009
  342. kOSASelectGetActiveProc            EQU        $000A
  343. ;  Compiling: 
  344.  
  345. kOSASelectScriptingComponentName EQU    $0102
  346. kOSASelectCompile                EQU        $0103
  347. kOSASelectCopyID                EQU        $0104
  348. ;  GetSource: 
  349.  
  350. kOSASelectGetSource                EQU        $0201
  351. ;  AECoercion: 
  352.  
  353. kOSASelectCoerceFromDesc        EQU        $0301
  354. kOSASelectCoerceToDesc            EQU        $0302
  355. ;  AESending: 
  356.  
  357. kOSASelectSetSendProc            EQU        $0401
  358. kOSASelectGetSendProc            EQU        $0402
  359. kOSASelectSetCreateProc            EQU        $0403
  360. kOSASelectGetCreateProc            EQU        $0404
  361. kOSASelectSetDefaultTarget        EQU        $0405
  362. ;  Recording: 
  363.  
  364. kOSASelectStartRecording        EQU        $0501
  365. kOSASelectStopRecording            EQU        $0502
  366. ;  Convenience: 
  367.  
  368. kOSASelectLoadExecute            EQU        $0601
  369. kOSASelectCompileExecute        EQU        $0602
  370. kOSASelectDoScript                EQU        $0603
  371. ;  Dialects: 
  372.  
  373. kOSASelectSetCurrentDialect        EQU        $0701
  374. kOSASelectGetCurrentDialect        EQU        $0702
  375. kOSASelectAvailableDialects        EQU        $0703
  376. kOSASelectGetDialectInfo        EQU        $0704
  377. kOSASelectAvailableDialectCodeList EQU    $0705
  378. ;  Event Handling: 
  379.  
  380. kOSASelectSetResumeDispatchProc    EQU        $0801
  381. kOSASelectGetResumeDispatchProc    EQU        $0802
  382. kOSASelectExecuteEvent            EQU        $0803
  383. kOSASelectDoEvent                EQU        $0804
  384. kOSASelectMakeContext            EQU        $0805
  385. ;  scripting component specific selectors are added beginning with this value  
  386.  
  387. kOSASelectComponentSpecificStart EQU    $1001
  388. ;
  389. ;        Mode Flags:
  390. ;
  391. ;    Warning: These should not conflict with the AESend mode flags in
  392. ;    AppleEvents.h, because we may want to use them as OSA mode flags too.
  393. ;
  394. ;
  395. ;        This mode flag may be passed to OSALoad, OSAStore or OSACompile to
  396. ;          instruct the scripting component to not retain the "source" of an
  397. ;          expression.  This will cause the OSAGetSource call to return the error
  398. ;          errOSASourceNotAvailable if used.  However, some scripting components
  399. ;          may not retain the source anyway.  This is mainly used when either space
  400. ;          efficiency is desired, or a script is to be "locked" so that its
  401. ;          implementation may not be viewed.
  402. ;
  403.  
  404. kOSAModePreventGetSource        EQU        $00000001
  405. ;
  406. ;        These mode flags may be passed to OSACompile, OSAExecute, OSALoadExecute
  407. ;          OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to
  408. ;          indicate whether or not the script may interact with the user, switch
  409. ;          layer or reconnect if necessary.  Any AppleEvents will be sent with the
  410. ;          corresponding AESend mode supplied.
  411. ;
  412.  
  413. kOSAModeNeverInteract            EQU        $00000010
  414. kOSAModeCanInteract                EQU        $00000020
  415. kOSAModeAlwaysInteract            EQU        $00000030
  416. kOSAModeDontReconnect            EQU        $00000080
  417. ;
  418. ;        This mode flag may be passed to OSACompile, OSAExecute, OSALoadExecute
  419. ;          OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to
  420. ;          indicate whether or not AppleEvents should be sent with the
  421. ;          kAECanSwitchLayer mode flag sent or not. NOTE: This flag is exactly the
  422. ;          opposite sense of the AppleEvent flag kAECanSwitchLayer.  This is to
  423. ;          provide a more convenient default, i.e. not supplying any mode
  424. ;          (kOSAModeNull) means to send events with kAECanSwitchLayer.  Supplying
  425. ;          the kOSAModeCantSwitchLayer mode flag will cause AESend to be called
  426. ;          without kAECanSwitchLayer.
  427. ;
  428.  
  429. kOSAModeCantSwitchLayer            EQU        $00000040
  430. ;
  431. ;        This mode flag may be passed to OSACompile, OSAExecute, OSALoadExecute
  432. ;          OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to
  433. ;          indicate whether or not AppleEvents should be sent with the kAEDontRecord
  434. ;          mode flag sent or not. NOTE: This flag is exactly the opposite sense of
  435. ;          the AppleEvent flag kAEDontRecord.  This is to provide a more convenient
  436. ;          default, i.e. not supplying any mode (kOSAModeNull) means to send events
  437. ;          with kAEDontRecord.  Supplying the kOSAModeDoRecord mode flag will 
  438. ;          cause AESend to be called without kAEDontRecord.
  439. ;
  440.  
  441. kOSAModeDoRecord                EQU        $00001000
  442. ;
  443. ;        This is a mode flag for OSACompile that indicates that a context should
  444. ;          be created as the result of compilation. All handler definitions are
  445. ;          inserted into the new context, and variables are initialized by
  446. ;          evaluating their initial values in a null context (i.e. they must be
  447. ;          constant expressions).
  448. ;
  449.  
  450. kOSAModeCompileIntoContext        EQU        $00000002
  451. ;
  452. ;        This is a mode flag for OSACompile that indicates that the previous
  453. ;          script ID (input to OSACompile) should be augmented with any new
  454. ;          definitions in the sourceData rather than replaced with a new script.
  455. ;          This means that the previous script ID must designate a context.
  456. ;          The presence of this flag causes the kOSAModeCompileIntoContext flag
  457. ;          to be implicitly used, causing any new definitions to be initialized
  458. ;          in a null context.
  459. ;
  460.  
  461. kOSAModeAugmentContext            EQU        $00000004
  462. ;
  463. ;        This mode flag may be passed to OSADisplay or OSADoScript to indicate
  464. ;          that output only need be human-readable, not re-compilable by OSACompile.
  465. ;          If used, output may be arbitrarily "beautified", e.g. quotes may be left
  466. ;          off of string values, long lists may have elipses, etc.
  467. ;
  468.  
  469. kOSAModeDisplayForHumans        EQU        $00000008
  470. ;
  471. ;        This mode flag may be passed to OSAStore in the case where the scriptID
  472. ;          is a context.  This causes the context to be saved, but not the context's
  473. ;          parent context.  When the stored context is loaded back in, the parent
  474. ;          will be kOSANullScript.
  475. ;
  476.  
  477. kOSAModeDontStoreParent            EQU        $00010000
  478. ;
  479. ;        This mode flag may be passed to OSAExecuteEvent to cause the event to
  480. ;          be dispatched to the direct object of the event. The direct object (or
  481. ;          subject attribute if the direct object is a non-object specifier) will
  482. ;          be resolved, and the resulting script object will be the recipient of
  483. ;          the message. The context argument to OSAExecuteEvent will serve as the
  484. ;          root of the lookup/resolution process.
  485. ;
  486.  
  487. kOSAModeDispatchToDirectObject    EQU        $00020000
  488. ;
  489. ;        This mode flag may be passed to OSAExecuteEvent to indicate that
  490. ;          components do not have to get the data of object specifier arguments.
  491. ;
  492.  
  493. kOSAModeDontGetDataForArguments    EQU        $00040000
  494. ;
  495. ;*************************************************************************
  496. ;    OSA Basic Scripting Interface
  497. ;**************************************************************************
  498. ;    Scripting components must at least support the Basic Scripting interface.
  499. ;*************************************************************************
  500. ;
  501. ;
  502. ;        Loading and Storing Scripts:
  503. ;
  504. ;    These routines allow scripts to be loaded and stored in their internal
  505. ;    (possibly compiled, non-text) representation.
  506. ;
  507. ;  Resource type for scripts 
  508.  
  509. kOSAScriptResourceType            EQU        'scpt'
  510. ;
  511. ;        Default type given to OSAStore which creates "generic" loadable script
  512. ;          data descriptors.
  513. ;
  514.  
  515. typeOSAGenericStorage            EQU        'scpt'
  516. ;
  517. ; pascal OSAError OSALoad(ComponentInstance scriptingComponent, const AEDesc *scriptData, long modeFlags, OSAID *resultingScriptID)
  518. ;
  519.     IF ¨ GENERATINGCFM THEN
  520.         Macro
  521.         _OSALoad
  522.             move.l              #$000C0001,-(sp)
  523.             moveq               #0,D0
  524.             dc.w                $A82A
  525.         EndM
  526.     ELSE
  527.         IMPORT_CFM_FUNCTION OSALoad
  528.     ENDIF
  529.  
  530. ;
  531. ;        OSAComponentFunctionInline(kOSASelectLoad, 12);
  532. ;    
  533. ;        Errors:
  534. ;            badComponentInstance        invalid scripting component instance
  535. ;            errOSASystemError
  536. ;            errOSABadStorageType:        scriptData not for this scripting component
  537. ;            errOSACorruptData:            data seems to be corrupt
  538. ;            errOSADataFormatObsolete    script data format is no longer supported
  539. ;            errOSADataFormatTooNew        script data format is from a newer version
  540. ;        
  541. ;        ModeFlags:
  542. ;            kOSAModePreventGetSource
  543. ;
  544. ;
  545. ; pascal OSAError OSAStore(ComponentInstance scriptingComponent, OSAID scriptID, DescType desiredType, long modeFlags, AEDesc *resultingScriptData)
  546. ;
  547.     IF ¨ GENERATINGCFM THEN
  548.         Macro
  549.         _OSAStore
  550.             move.l              #$00100002,-(sp)
  551.             moveq               #0,D0
  552.             dc.w                $A82A
  553.         EndM
  554.     ELSE
  555.         IMPORT_CFM_FUNCTION OSAStore
  556.     ENDIF
  557.  
  558. ;
  559. ;        OSAComponentFunctionInline(kOSASelectStore, 16);
  560. ;    
  561. ;        Errors:
  562. ;            badComponentInstance    invalid scripting component instance
  563. ;            errOSASystemError
  564. ;            errOSAInvalidID
  565. ;            errOSABadStorageType:    desiredType not for this scripting component
  566. ;        
  567. ;        ModeFlags:
  568. ;            kOSAModePreventGetSource
  569. ;            kOSAModeDontStoreParent
  570. ;
  571. ;  Executing Scripts: 
  572. ;
  573. ; pascal OSAError OSAExecute(ComponentInstance scriptingComponent, OSAID compiledScriptID, OSAID contextID, long modeFlags, OSAID *resultingScriptValueID)
  574. ;
  575.     IF ¨ GENERATINGCFM THEN
  576.         Macro
  577.         _OSAExecute
  578.             move.l              #$00100003,-(sp)
  579.             moveq               #0,D0
  580.             dc.w                $A82A
  581.         EndM
  582.     ELSE
  583.         IMPORT_CFM_FUNCTION OSAExecute
  584.     ENDIF
  585.  
  586. ;
  587. ;        OSAComponentFunctionInline(kOSASelectExecute, 16);
  588. ;        This call runs a script.  The contextID represents the environment
  589. ;        with which global variables in the script are resolved.  The constant
  590. ;        kOSANullScript may be used for the contextID if the application wishes
  591. ;        to not deal with context directly (a default one is associated with each
  592. ;        scripting component instance).  The resultingScriptValueID is the 
  593. ;        result of evaluation, and contains a value which may be displayed using
  594. ;        the OSAGetSource call.  The modeFlags convey scripting component
  595. ;        specific information.
  596. ;    
  597. ;        Errors:
  598. ;            badComponentInstance    invalid scripting component instance
  599. ;            errOSASystemError
  600. ;            errOSAInvalidID
  601. ;            errOSAScriptError:        the executing script got an error
  602. ;    
  603. ;        ModeFlags:
  604. ;            kOSAModeNeverInteract
  605. ;            kOSAModeCanInteract
  606. ;            kOSAModeAlwaysInteract
  607. ;            kOSAModeCantSwitchLayer
  608. ;            kOSAModeDontReconnect
  609. ;            kOSAModeDoRecord
  610. ;
  611. ;  Displaying results: 
  612. ;
  613. ; pascal OSAError OSADisplay(ComponentInstance scriptingComponent, OSAID scriptValueID, DescType desiredType, long modeFlags, AEDesc *resultingText)
  614. ;
  615.     IF ¨ GENERATINGCFM THEN
  616.         Macro
  617.         _OSADisplay
  618.             move.l              #$00100004,-(sp)
  619.             moveq               #0,D0
  620.             dc.w                $A82A
  621.         EndM
  622.     ELSE
  623.         IMPORT_CFM_FUNCTION OSADisplay
  624.     ENDIF
  625.  
  626. ;
  627. ;        OSAComponentFunctionInline(kOSASelectDisplay, 16);
  628. ;        This call is used to convert results (script value IDs) into displayable
  629. ;        text. The desiredType should be at least typeChar, and modeFlags are
  630. ;        scripting system specific flags to control the formatting of the
  631. ;        resulting text. This call differs from OSAGetSource in that (1) it
  632. ;        always produces at least typeChar, (2) is only works on script values,
  633. ;        (3) it may display it's output in non-compilable form (e.g. without
  634. ;        string quotes, elipses inserted in long and/or circular lists, etc.) and
  635. ;        (4) it is required by the basic scripting interface.
  636. ;    
  637. ;        Errors:
  638. ;            badComponentInstance    invalid scripting component instance
  639. ;            errOSASystemError
  640. ;            errOSAInvalidID
  641. ;            errAECoercionFail:        desiredType not supported by scripting component
  642. ;    
  643. ;        ModeFlags:
  644. ;            kOSAModeDisplayForHumans
  645. ;
  646. ;  Getting Error Information: 
  647. ;
  648. ; pascal OSAError OSAScriptError(ComponentInstance scriptingComponent, OSType selector, DescType desiredType, AEDesc *resultingErrorDescription)
  649. ;
  650.     IF ¨ GENERATINGCFM THEN
  651.         Macro
  652.         _OSAScriptError
  653.             move.l              #$000C0005,-(sp)
  654.             moveq               #0,D0
  655.             dc.w                $A82A
  656.         EndM
  657.     ELSE
  658.         IMPORT_CFM_FUNCTION OSAScriptError
  659.     ENDIF
  660.  
  661. ;
  662. ;        OSAComponentFunctionInline(kOSASelectScriptError, 12);
  663. ;        Whenever script execution returns errOSAExecutionError, this routine
  664. ;        may be used to get information about that error.  The selector describes
  665. ;        the type of information desired about the error (various selectors are
  666. ;        listed below).  The desiredType indicates the data type of the result
  667. ;        desired for that selector.
  668. ;    
  669. ;        Errors:
  670. ;            badComponentInstance    invalid scripting component instance
  671. ;            errOSASystemError
  672. ;            errOSABadSelector:        selector not supported by scripting component
  673. ;            errAECoercionFail:        desiredType not supported by scripting component
  674. ;
  675. ;  OSAScriptError selectors: 
  676. ;
  677. ;        This selector is used to determine the error number of a script error.
  678. ;        These error numbers may be either system error numbers, or error numbers
  679. ;        that are scripting component specific.
  680. ;        Required desiredTypes:    
  681. ;              typeShortInteger
  682. ;
  683.  
  684. kOSAErrorNumber                    EQU        'errn'
  685. ;
  686. ;        This selector is used to determine the full error message associated
  687. ;        with the error number.  It should include the name of the application
  688. ;        which caused the error, as well as the specific error that occurred.
  689. ;        This selector is sufficient for simple error reporting (but see
  690. ;        kOSAErrorBriefMessage, below).
  691. ;        Required desiredTypes:
  692. ;            typeChar                    error message string
  693. ;
  694.  
  695. kOSAErrorMessage                EQU        'errs'
  696. ;
  697. ;        This selector is used to determine a brief error message associated with
  698. ;        the error number.  This message and should not mention the name of the
  699. ;        application which caused the error, any partial results or offending
  700. ;        object (see kOSAErrorApp, kOSAErrorPartialResult and
  701. ;        kOSAErrorOffendingObject, below).
  702. ;        Required desiredTypes:
  703. ;              typeChar                    brief error message string
  704. ;
  705. ;   0x65727262  
  706.  
  707. kOSAErrorBriefMessage            EQU        'errb'
  708. ;
  709. ;        This selector is used to determine which application actually got the
  710. ;        error (if it was the result of an AESend), or the current application
  711. ;        if ....
  712. ;        Required desiredTypes:
  713. ;              typeProcessSerialNumber        PSN of the errant application
  714. ;              typeChar                    name of the errant application
  715. ;
  716. ;   0x65726170  
  717.  
  718. kOSAErrorApp                    EQU        'erap'
  719. ;
  720. ;        This selector is used to determine any partial result returned by an 
  721. ;        operation. If an AESend call failed, but a partial result was returned,
  722. ;        then the partial result may be returned as an AEDesc.
  723. ;        Required desiredTypes:
  724. ;              typeBest                    AEDesc of any partial result
  725. ;
  726. ;   0x70746c72   
  727.  
  728. kOSAErrorPartialResult            EQU        'ptlr'
  729. ;
  730. ;        This selector is used to determine any object which caused the error
  731. ;        that may have been indicated by an application.  The result is an 
  732. ;        AEDesc.
  733. ;        Required desiredTypes:
  734. ;              typeBest                    AEDesc of any offending object
  735. ;
  736. ;   0x65726f62   
  737.  
  738. kOSAErrorOffendingObject        EQU        'erob'
  739. ;
  740. ;        This selector is used to determine the type expected by a coercion 
  741. ;        operation if a type error occurred.
  742. ;
  743. ;   0x65727274   
  744.  
  745. kOSAErrorExpectedType            EQU        'errt'
  746. ;
  747. ;        This selector is used to determine the source text range (start and 
  748. ;        end positions) of where the error occurred.
  749. ;        Required desiredTypes:
  750. ;              typeOSAErrorRange
  751. ;
  752. ;   0x65726e67  
  753.  
  754. kOSAErrorRange                    EQU        'erng'
  755. ;
  756. ;        An AERecord type containing keyOSASourceStart and keyOSASourceEnd fields
  757. ;        of type short.
  758. ;
  759. ;   0x65726e67   
  760.  
  761. typeOSAErrorRange                EQU        'erng'
  762. ;  Field of a typeOSAErrorRange record of typeShortInteger 
  763. ;   0x73726373    
  764.  
  765. keyOSASourceStart                EQU        'srcs'
  766. ;  Field of a typeOSAErrorRange record of typeShortInteger 
  767. ;   0x73726365   
  768.  
  769. keyOSASourceEnd                    EQU        'srce'
  770. ;  Disposing Script IDs: 
  771. ;
  772. ; pascal OSAError OSADispose(ComponentInstance scriptingComponent, OSAID scriptID)
  773. ;
  774.     IF ¨ GENERATINGCFM THEN
  775.         Macro
  776.         _OSADispose
  777.             move.l              #$00040006,-(sp)
  778.             moveq               #0,D0
  779.             dc.w                $A82A
  780.         EndM
  781.     ELSE
  782.         IMPORT_CFM_FUNCTION OSADispose
  783.     ENDIF
  784.  
  785. ;
  786. ;        OSAComponentFunctionInline(kOSASelectDispose, 4);
  787. ;        Disposes a script or context.
  788. ;    
  789. ;        Errors:
  790. ;            badComponentInstance    invalid scripting component instance
  791. ;            errOSASystemError
  792. ;            errOSAInvalidID
  793. ;
  794. ;  Getting and Setting Script Information: 
  795. ;
  796. ; pascal OSAError OSASetScriptInfo(ComponentInstance scriptingComponent, OSAID scriptID, OSType selector, long value)
  797. ;
  798.     IF ¨ GENERATINGCFM THEN
  799.         Macro
  800.         _OSASetScriptInfo
  801.             move.l              #$000C0007,-(sp)
  802.             moveq               #0,D0
  803.             dc.w                $A82A
  804.         EndM
  805.     ELSE
  806.         IMPORT_CFM_FUNCTION OSASetScriptInfo
  807.     ENDIF
  808.  
  809. ;
  810. ;        OSAComponentFunctionInline(kOSASelectSetScriptInfo, 12);
  811. ;    
  812. ;        Errors:
  813. ;            badComponentInstance    invalid scripting component instance
  814. ;            errOSASystemError
  815. ;            errOSAInvalidID
  816. ;            errOSABadSelector:        selector not supported by scripting component
  817. ;                                    or selector not for this scriptID
  818. ;
  819. ;
  820. ; pascal OSAError OSAGetScriptInfo(ComponentInstance scriptingComponent, OSAID scriptID, OSType selector, long *result)
  821. ;
  822.     IF ¨ GENERATINGCFM THEN
  823.         Macro
  824.         _OSAGetScriptInfo
  825.             move.l              #$000C0008,-(sp)
  826.             moveq               #0,D0
  827.             dc.w                $A82A
  828.         EndM
  829.     ELSE
  830.         IMPORT_CFM_FUNCTION OSAGetScriptInfo
  831.     ENDIF
  832.  
  833. ;
  834. ;        OSAComponentFunctionInline(kOSASelectGetScriptInfo, 12);
  835. ;    
  836. ;        Errors:
  837. ;            badComponentInstance    invalid scripting component instance
  838. ;            errOSASystemError
  839. ;            errOSAInvalidID
  840. ;            errOSABadSelector:        selector not supported by scripting component
  841. ;                                    or selector not for this scriptID
  842. ;
  843. ;
  844. ; Manipulating the ActiveProc:
  845. ;
  846. ;    Scripting systems will supply default values for these procedures if they
  847. ;    are not set by the client:
  848. ;
  849. ;
  850. ; pascal OSAError OSASetActiveProc(ComponentInstance scriptingComponent, OSAActiveUPP activeProc, long refCon)
  851. ;
  852.     IF ¨ GENERATINGCFM THEN
  853.         Macro
  854.         _OSASetActiveProc
  855.             move.l              #$00080009,-(sp)
  856.             moveq               #0,D0
  857.             dc.w                $A82A
  858.         EndM
  859.     ELSE
  860.         IMPORT_CFM_FUNCTION OSASetActiveProc
  861.     ENDIF
  862.  
  863. ;
  864. ;        OSAComponentFunctionInline(kOSASelectSetActiveProc, 8);
  865. ;        If activeProc is nil, the default activeProc is used.
  866. ;    
  867. ;        Errors:
  868. ;            badComponentInstance    invalid scripting component instance
  869. ;            errOSASystemError
  870. ;
  871. ;
  872. ; pascal OSAError OSAGetActiveProc(ComponentInstance scriptingComponent, OSAActiveUPP *activeProc, long *refCon)
  873. ;
  874.     IF ¨ GENERATINGCFM THEN
  875.         Macro
  876.         _OSAGetActiveProc
  877.             move.l              #$0008000A,-(sp)
  878.             moveq               #0,D0
  879.             dc.w                $A82A
  880.         EndM
  881.     ELSE
  882.         IMPORT_CFM_FUNCTION OSAGetActiveProc
  883.     ENDIF
  884.  
  885. ;
  886. ;        OSAComponentFunctionInline(kOSASelectGetActiveProc, 8);
  887. ;    
  888. ;        Errors:
  889. ;            badComponentInstance    invalid scripting component instance
  890. ;            errOSASystemError
  891. ;
  892. ;
  893. ;*************************************************************************
  894. ;    OSA Optional Compiling Interface
  895. ;**************************************************************************
  896. ;    Scripting components that support the Compiling interface have the 
  897. ;    kOSASupportsCompiling bit set in it's ComponentDescription.
  898. ;*************************************************************************
  899. ;
  900. ;
  901. ; pascal OSAError OSAScriptingComponentName(ComponentInstance scriptingComponent, AEDesc *resultingScriptingComponentName)
  902. ;
  903.     IF ¨ GENERATINGCFM THEN
  904.         Macro
  905.         _OSAScriptingComponentName
  906.             move.l              #$00040102,-(sp)
  907.             moveq               #0,D0
  908.             dc.w                $A82A
  909.         EndM
  910.     ELSE
  911.         IMPORT_CFM_FUNCTION OSAScriptingComponentName
  912.     ENDIF
  913.  
  914. ;
  915. ;        OSAComponentFunctionInline(kOSASelectScriptingComponentName, 4);
  916. ;        Given a scripting component, this routine returns the name of that
  917. ;        scripting component in a type that is coercable to text (typeChar).
  918. ;        The generic scripting component returns the name of the default
  919. ;        scripting component.  This name should be sufficient to convey to the
  920. ;        user the kind of script (syntax) he is expected to write.
  921. ;    
  922. ;        Errors:
  923. ;            badComponentInstance    invalid scripting component instance
  924. ;            errOSASystemError
  925. ;
  926. ;
  927. ; pascal OSAError OSACompile(ComponentInstance scriptingComponent, const AEDesc *sourceData, long modeFlags, OSAID *previousAndResultingScriptID)
  928. ;
  929.     IF ¨ GENERATINGCFM THEN
  930.         Macro
  931.         _OSACompile
  932.             move.l              #$000C0103,-(sp)
  933.             moveq               #0,D0
  934.             dc.w                $A82A
  935.         EndM
  936.     ELSE
  937.         IMPORT_CFM_FUNCTION OSACompile
  938.     ENDIF
  939.  
  940. ;
  941. ;        OSAComponentFunctionInline(kOSASelectCompile, 12);
  942. ;        Coerces input desc (possibly text) into a script's internal format.
  943. ;        Once compiled, the script is ready to run.  The modeFlags convey
  944. ;        scripting component specific information.  The previous script ID
  945. ;        (result parameter) is made to refer to the newly compiled script,
  946. ;        unless it was originally kOSANullScript.  In this case a new script
  947. ;        ID is created and used.
  948. ;    
  949. ;        Errors:
  950. ;            badComponentInstance    invalid scripting component instance
  951. ;            errOSASystemError
  952. ;            errAECoercionFail:        sourceData is not compilable
  953. ;            errOSAScriptError:        sourceData was a bad script (syntax error)
  954. ;            errOSAInvalidID:        previousAndResultingCompiledScriptID was not
  955. ;                                    valid on input
  956. ;    
  957. ;        ModeFlags:
  958. ;            kOSAModePreventGetSource
  959. ;            kOSAModeCompileIntoContext
  960. ;            kOSAModeAugmentContext
  961. ;            kOSAModeNeverInteract
  962. ;            kOSAModeCanInteract
  963. ;            kOSAModeAlwaysInteract
  964. ;            kOSAModeCantSwitchLayer
  965. ;            kOSAModeDontReconnect
  966. ;            kOSAModeDoRecord
  967. ;
  968. ;
  969. ; pascal OSAError OSACopyID(ComponentInstance scriptingComponent, OSAID fromID, OSAID *toID)
  970. ;
  971.     IF ¨ GENERATINGCFM THEN
  972.         Macro
  973.         _OSACopyID
  974.             move.l              #$00080104,-(sp)
  975.             moveq               #0,D0
  976.             dc.w                $A82A
  977.         EndM
  978.     ELSE
  979.         IMPORT_CFM_FUNCTION OSACopyID
  980.     ENDIF
  981.  
  982. ;
  983. ;        OSAComponentFunctionInline(kOSASelectCopyID, 8);
  984. ;        If toID is a reference to kOSANullScript then it is updated to have a
  985. ;        new scriptID value.  This call can be used to perform undo or revert
  986. ;        operations on scripts. 
  987. ;    
  988. ;        Errors:
  989. ;            badComponentInstance    invalid scripting component instance
  990. ;            errOSASystemError
  991. ;            errOSAInvalidID
  992. ;
  993. ;
  994. ;*************************************************************************
  995. ;    OSA Optional GetSource Interface
  996. ;**************************************************************************
  997. ;    Scripting components that support the GetSource interface have the 
  998. ;    kOSASupportsGetSource bit set in it's ComponentDescription.
  999. ;*************************************************************************
  1000. ;
  1001. ;
  1002. ; pascal OSAError OSAGetSource(ComponentInstance scriptingComponent, OSAID scriptID, DescType desiredType, AEDesc *resultingSourceData)
  1003. ;
  1004.     IF ¨ GENERATINGCFM THEN
  1005.         Macro
  1006.         _OSAGetSource
  1007.             move.l              #$000C0201,-(sp)
  1008.             moveq               #0,D0
  1009.             dc.w                $A82A
  1010.         EndM
  1011.     ELSE
  1012.         IMPORT_CFM_FUNCTION OSAGetSource
  1013.     ENDIF
  1014.  
  1015. ;
  1016. ;        OSAComponentFunctionInline(kOSASelectGetSource, 12);
  1017. ;        This routine causes a compiled script to be output in a form (possibly
  1018. ;        text) such that it is suitable to be passed back to OSACompile.
  1019. ;
  1020. ;        Errors:
  1021. ;            badComponentInstance    invalid scripting component instance
  1022. ;            errOSASystemError
  1023. ;            errOSAInvalidID
  1024. ;            errOSASourceNotAvailable    can't get source for this scriptID
  1025. ;
  1026. ;
  1027. ;*************************************************************************
  1028. ;    OSA Optional AECoercion Interface
  1029. ;**************************************************************************
  1030. ;    Scripting components that support the AECoercion interface have the 
  1031. ;    kOSASupportsAECoercion bit set in it's ComponentDescription.
  1032. ;*************************************************************************
  1033. ;
  1034. ;
  1035. ; pascal OSAError OSACoerceFromDesc(ComponentInstance scriptingComponent, const AEDesc *scriptData, long modeFlags, OSAID *resultingScriptID)
  1036. ;
  1037.     IF ¨ GENERATINGCFM THEN
  1038.         Macro
  1039.         _OSACoerceFromDesc
  1040.             move.l              #$000C0301,-(sp)
  1041.             moveq               #0,D0
  1042.             dc.w                $A82A
  1043.         EndM
  1044.     ELSE
  1045.         IMPORT_CFM_FUNCTION OSACoerceFromDesc
  1046.     ENDIF
  1047.  
  1048. ;
  1049. ;        OSAComponentFunctionInline(kOSASelectCoerceFromDesc, 12);
  1050. ;        This routine causes script data to be coerced into a script value.
  1051. ;        If the scriptData is an AppleEvent, then the resultingScriptID is a
  1052. ;        compiled script ID (mode flags for OSACompile may be used in this case).
  1053. ;        Other scriptData descriptors create script value IDs.
  1054. ;    
  1055. ;        Errors:
  1056. ;            badComponentInstance    invalid scripting component instance
  1057. ;            errOSASystemError
  1058. ;    
  1059. ;        ModeFlags:
  1060. ;            kOSAModePreventGetSource
  1061. ;            kOSAModeCompileIntoContext
  1062. ;            kOSAModeNeverInteract
  1063. ;            kOSAModeCanInteract
  1064. ;            kOSAModeAlwaysInteract
  1065. ;            kOSAModeCantSwitchLayer
  1066. ;            kOSAModeDontReconnect
  1067. ;            kOSAModeDoRecord
  1068. ;
  1069. ;
  1070. ; pascal OSAError OSACoerceToDesc(ComponentInstance scriptingComponent, OSAID scriptID, DescType desiredType, long modeFlags, AEDesc *result)
  1071. ;
  1072.     IF ¨ GENERATINGCFM THEN
  1073.         Macro
  1074.         _OSACoerceToDesc
  1075.             move.l              #$00100302,-(sp)
  1076.             moveq               #0,D0
  1077.             dc.w                $A82A
  1078.         EndM
  1079.     ELSE
  1080.         IMPORT_CFM_FUNCTION OSACoerceToDesc
  1081.     ENDIF
  1082.  
  1083. ;
  1084. ;        OSAComponentFunctionInline(kOSASelectCoerceToDesc, 16);
  1085. ;        This routine causes a script value to be coerced into any desired form.
  1086. ;        If the scriptID denotes a compiled script, then it may be coerced to 
  1087. ;        typeAppleEvent.
  1088. ;    
  1089. ;        Errors:
  1090. ;            badComponentInstance    invalid scripting component instance
  1091. ;            errOSASystemError
  1092. ;            errOSAInvalidID
  1093. ;
  1094. ;
  1095. ;*************************************************************************
  1096. ;    OSA Optional AESending Interface
  1097. ;**************************************************************************
  1098. ;    Scripting components that support the AESending interface have the 
  1099. ;    kOSASupportsAESending bit set in it's ComponentDescription.
  1100. ;*************************************************************************
  1101. ;
  1102. ;
  1103. ;    Scripting systems will supply default values for these procedures if they
  1104. ;    are not set by the client:
  1105. ;
  1106. ;
  1107. ; pascal OSAError OSASetSendProc(ComponentInstance scriptingComponent, OSASendUPP sendProc, long refCon)
  1108. ;
  1109.     IF ¨ GENERATINGCFM THEN
  1110.         Macro
  1111.         _OSASetSendProc
  1112.             move.l              #$00080401,-(sp)
  1113.             moveq               #0,D0
  1114.             dc.w                $A82A
  1115.         EndM
  1116.     ELSE
  1117.         IMPORT_CFM_FUNCTION OSASetSendProc
  1118.     ENDIF
  1119.  
  1120. ;
  1121. ;        OSAComponentFunctionInline(kOSASelectSetSendProc, 8);
  1122. ;        If sendProc is nil, the default sendProc is used.
  1123. ;    
  1124. ;        Errors:
  1125. ;            badComponentInstance    invalid scripting component instance
  1126. ;            errOSASystemError
  1127. ;
  1128. ;
  1129. ; pascal OSAError OSAGetSendProc(ComponentInstance scriptingComponent, OSASendUPP *sendProc, long *refCon)
  1130. ;
  1131.     IF ¨ GENERATINGCFM THEN
  1132.         Macro
  1133.         _OSAGetSendProc
  1134.             move.l              #$00080402,-(sp)
  1135.             moveq               #0,D0
  1136.             dc.w                $A82A
  1137.         EndM
  1138.     ELSE
  1139.         IMPORT_CFM_FUNCTION OSAGetSendProc
  1140.     ENDIF
  1141.  
  1142. ;
  1143. ;        OSAComponentFunctionInline(kOSASelectGetSendProc, 8);
  1144. ;    
  1145. ;        Errors:
  1146. ;            badComponentInstance    invalid scripting component instance
  1147. ;            errOSASystemError
  1148. ;
  1149. ;
  1150. ; pascal OSAError OSASetCreateProc(ComponentInstance scriptingComponent, OSACreateAppleEventUPP createProc, long refCon)
  1151. ;
  1152.     IF ¨ GENERATINGCFM THEN
  1153.         Macro
  1154.         _OSASetCreateProc
  1155.             move.l              #$00080403,-(sp)
  1156.             moveq               #0,D0
  1157.             dc.w                $A82A
  1158.         EndM
  1159.     ELSE
  1160.         IMPORT_CFM_FUNCTION OSASetCreateProc
  1161.     ENDIF
  1162.  
  1163. ;
  1164. ;        OSAComponentFunctionInline(kOSASelectSetCreateProc, 8);
  1165. ;        If createProc is nil, the default createProc is used.
  1166. ;    
  1167. ;        Errors:
  1168. ;            badComponentInstance    invalid scripting component instance
  1169. ;            errOSASystemError
  1170. ;
  1171. ;
  1172. ; pascal OSAError OSAGetCreateProc(ComponentInstance scriptingComponent, OSACreateAppleEventUPP *createProc, long *refCon)
  1173. ;
  1174.     IF ¨ GENERATINGCFM THEN
  1175.         Macro
  1176.         _OSAGetCreateProc
  1177.             move.l              #$00080404,-(sp)
  1178.             moveq               #0,D0
  1179.             dc.w                $A82A
  1180.         EndM
  1181.     ELSE
  1182.         IMPORT_CFM_FUNCTION OSAGetCreateProc
  1183.     ENDIF
  1184.  
  1185. ;
  1186. ;        OSAComponentFunctionInline(kOSASelectGetCreateProc, 8);
  1187. ;    
  1188. ;        Errors:
  1189. ;            badComponentInstance    invalid scripting component instance
  1190. ;            errOSASystemError
  1191. ;
  1192. ;
  1193. ; pascal OSAError OSASetDefaultTarget(ComponentInstance scriptingComponent, const AEAddressDesc *target)
  1194. ;
  1195.     IF ¨ GENERATINGCFM THEN
  1196.         Macro
  1197.         _OSASetDefaultTarget
  1198.             move.l              #$00040405,-(sp)
  1199.             moveq               #0,D0
  1200.             dc.w                $A82A
  1201.         EndM
  1202.     ELSE
  1203.         IMPORT_CFM_FUNCTION OSASetDefaultTarget
  1204.     ENDIF
  1205.  
  1206. ;
  1207. ;        OSAComponentFunctionInline(kOSASelectSetDefaultTarget, 4);
  1208. ;        This routine sets the default target application for AE sending.
  1209. ;        It also establishes the default target from which terminologies come.
  1210. ;        It is effectively like having an AppleScript "tell" statement around
  1211. ;        the entire program.  If this routine is not called, or if the target 
  1212. ;        is a null AEDesc, then the current application is the default target.
  1213. ;    
  1214. ;        Errors:
  1215. ;            badComponentInstance    invalid scripting component instance
  1216. ;            errOSASystemError
  1217. ;
  1218. ;
  1219. ;*************************************************************************
  1220. ;    OSA Optional Recording Interface
  1221. ;**************************************************************************
  1222. ;    Scripting components that support the Recording interface have the 
  1223. ;    kOSASupportsRecording bit set in it's ComponentDescription.
  1224. ;*************************************************************************
  1225. ;
  1226. ;
  1227. ; pascal OSAError OSAStartRecording(ComponentInstance scriptingComponent, OSAID *compiledScriptToModifyID)
  1228. ;
  1229.     IF ¨ GENERATINGCFM THEN
  1230.         Macro
  1231.         _OSAStartRecording
  1232.             move.l              #$00040501,-(sp)
  1233.             moveq               #0,D0
  1234.             dc.w                $A82A
  1235.         EndM
  1236.     ELSE
  1237.         IMPORT_CFM_FUNCTION OSAStartRecording
  1238.     ENDIF
  1239.  
  1240. ;
  1241. ;        OSAComponentFunctionInline(kOSASelectStartRecording, 4);
  1242. ;        Starts recording.  If compiledScriptToModifyID is kOSANullScript, a
  1243. ;        new script ID is created and returned.  If the current application has
  1244. ;        a handler for the kOSARecordedText event, then kOSARecordedText events
  1245. ;        are sent to the application containing the text of each AppleEvent 
  1246. ;        recorded.
  1247. ;    
  1248. ;        Errors:
  1249. ;            badComponentInstance    invalid scripting component instance
  1250. ;            errOSASystemError
  1251. ;            errOSAInvalidID
  1252. ;            errOSARecordingIsAlreadyOn
  1253. ;
  1254. ;
  1255. ; pascal OSAError OSAStopRecording(ComponentInstance scriptingComponent, OSAID compiledScriptID)
  1256. ;
  1257.     IF ¨ GENERATINGCFM THEN
  1258.         Macro
  1259.         _OSAStopRecording
  1260.             move.l              #$00040502,-(sp)
  1261.             moveq               #0,D0
  1262.             dc.w                $A82A
  1263.         EndM
  1264.     ELSE
  1265.         IMPORT_CFM_FUNCTION OSAStopRecording
  1266.     ENDIF
  1267.  
  1268. ;
  1269. ;        OSAComponentFunctionInline(kOSASelectStopRecording, 4);
  1270. ;        If compiledScriptID is not being recorded into or recording is not
  1271. ;        currently on, no error is returned.
  1272. ;    
  1273. ;        Errors:
  1274. ;            badComponentInstance    invalid scripting component instance
  1275. ;            errOSASystemError
  1276. ;            errOSAInvalidID
  1277. ;
  1278. ;
  1279. ;*************************************************************************
  1280. ;    OSA Optional Convenience Interface
  1281. ;**************************************************************************
  1282. ;    Scripting components that support the Convenience interface have the 
  1283. ;    kOSASupportsConvenience bit set in it's ComponentDescription.
  1284. ;*************************************************************************
  1285. ;
  1286. ;
  1287. ; pascal OSAError OSALoadExecute(ComponentInstance scriptingComponent, const AEDesc *scriptData, OSAID contextID, long modeFlags, OSAID *resultingScriptValueID)
  1288. ;
  1289.     IF ¨ GENERATINGCFM THEN
  1290.         Macro
  1291.         _OSALoadExecute
  1292.             move.l              #$00100601,-(sp)
  1293.             moveq               #0,D0
  1294.             dc.w                $A82A
  1295.         EndM
  1296.     ELSE
  1297.         IMPORT_CFM_FUNCTION OSALoadExecute
  1298.     ENDIF
  1299.  
  1300. ;
  1301. ;        OSAComponentFunctionInline(kOSASelectLoadExecute, 16);
  1302. ;        This routine is effectively equivalent to calling OSALoad followed by
  1303. ;        OSAExecute.  After execution, the compiled source is disposed.  Only the
  1304. ;        resulting value ID is retained.
  1305. ;    
  1306. ;        Errors:
  1307. ;            badComponentInstance        invalid scripting component instance
  1308. ;            errOSASystemError
  1309. ;            errOSABadStorageType:        scriptData not for this scripting component
  1310. ;            errOSACorruptData:            data seems to be corrupt
  1311. ;            errOSADataFormatObsolete    script data format is no longer supported
  1312. ;            errOSADataFormatTooNew        script data format is from a newer version
  1313. ;            errOSAInvalidID
  1314. ;            errOSAScriptError:            the executing script got an error
  1315. ;    
  1316. ;        ModeFlags:
  1317. ;            kOSAModeNeverInteract
  1318. ;            kOSAModeCanInteract
  1319. ;            kOSAModeAlwaysInteract
  1320. ;            kOSAModeCantSwitchLayer
  1321. ;            kOSAModeDontReconnect
  1322. ;            kOSAModeDoRecord
  1323. ;
  1324. ;
  1325. ; pascal OSAError OSACompileExecute(ComponentInstance scriptingComponent, const AEDesc *sourceData, OSAID contextID, long modeFlags, OSAID *resultingScriptValueID)
  1326. ;
  1327.     IF ¨ GENERATINGCFM THEN
  1328.         Macro
  1329.         _OSACompileExecute
  1330.             move.l              #$00100602,-(sp)
  1331.             moveq               #0,D0
  1332.             dc.w                $A82A
  1333.         EndM
  1334.     ELSE
  1335.         IMPORT_CFM_FUNCTION OSACompileExecute
  1336.     ENDIF
  1337.  
  1338. ;
  1339. ;        OSAComponentFunctionInline(kOSASelectCompileExecute, 16);
  1340. ;        This routine is effectively equivalent to calling OSACompile followed by
  1341. ;        OSAExecute.  After execution, the compiled source is disposed.  Only the
  1342. ;        resulting value ID is retained.
  1343. ;    
  1344. ;        Errors:
  1345. ;            badComponentInstance    invalid scripting component instance
  1346. ;            errOSASystemError
  1347. ;            errAECoercionFail:        sourceData is not compilable
  1348. ;            errOSAScriptError:        sourceData was a bad script (syntax error)
  1349. ;            errOSAInvalidID:        previousAndResultingCompiledScriptID was not
  1350. ;                                    valid on input
  1351. ;            errOSAScriptError:        the executing script got an error
  1352. ;    
  1353. ;        ModeFlags:
  1354. ;            kOSAModeNeverInteract
  1355. ;            kOSAModeCanInteract
  1356. ;            kOSAModeAlwaysInteract
  1357. ;            kOSAModeCantSwitchLayer
  1358. ;            kOSAModeDontReconnect
  1359. ;            kOSAModeDoRecord
  1360. ;
  1361. ;
  1362. ; pascal OSAError OSADoScript(ComponentInstance scriptingComponent, const AEDesc *sourceData, OSAID contextID, DescType desiredType, long modeFlags, AEDesc *resultingText)
  1363. ;
  1364.     IF ¨ GENERATINGCFM THEN
  1365.         Macro
  1366.         _OSADoScript
  1367.             move.l              #$00140603,-(sp)
  1368.             moveq               #0,D0
  1369.             dc.w                $A82A
  1370.         EndM
  1371.     ELSE
  1372.         IMPORT_CFM_FUNCTION OSADoScript
  1373.     ENDIF
  1374.  
  1375. ;
  1376. ;        OSAComponentFunctionInline(kOSASelectDoScript, 20);
  1377. ;        This routine is effectively equivalent to calling OSACompile followed by
  1378. ;        OSAExecute and then OSADisplay.  After execution, the compiled source
  1379. ;        and the resulting value are is disposed.  Only the resultingText
  1380. ;        descriptor is retained.  If a script error occur during processing, the 
  1381. ;        resultingText gets the error message of the error, and errOSAScriptError
  1382. ;        is returned.  OSAScriptError may still be used to extract more 
  1383. ;        information about the particular error.
  1384. ;    
  1385. ;        Errors:
  1386. ;            badComponentInstance    invalid scripting component instance
  1387. ;            errOSASystemError
  1388. ;            errAECoercionFail:        sourceData is not compilable or 
  1389. ;                                    desiredType not supported by scripting component
  1390. ;            errOSAScriptError:        sourceData was a bad script (syntax error)
  1391. ;            errOSAInvalidID:        previousAndResultingCompiledScriptID was not
  1392. ;                                    valid on input
  1393. ;            errOSAScriptError:        the executing script got an error
  1394. ;    
  1395. ;        ModeFlags:
  1396. ;            kOSAModeNeverInteract
  1397. ;            kOSAModeCanInteract
  1398. ;            kOSAModeAlwaysInteract
  1399. ;            kOSAModeCantSwitchLayer
  1400. ;            kOSAModeDontReconnect
  1401. ;            kOSAModeDoRecord
  1402. ;            kOSAModeDisplayForHumans
  1403. ;
  1404. ;
  1405. ;*************************************************************************
  1406. ;    OSA Optional Dialects Interface
  1407. ;**************************************************************************
  1408. ;    Scripting components that support the Dialects interface have the 
  1409. ;    kOSASupportsDialects bit set in it's ComponentDescription.
  1410. ;*************************************************************************
  1411. ;
  1412. ;
  1413. ;    These calls allows an scripting component that supports different dialects
  1414. ;    to dynamically switch between those dialects.  Although this interface is
  1415. ;    specified, the particular dialect codes are scripting component dependent.
  1416. ;
  1417. ;
  1418. ; pascal OSAError OSASetCurrentDialect(ComponentInstance scriptingComponent, short dialectCode)
  1419. ;
  1420.     IF ¨ GENERATINGCFM THEN
  1421.         Macro
  1422.         _OSASetCurrentDialect
  1423.             move.l              #$00020701,-(sp)
  1424.             moveq               #0,D0
  1425.             dc.w                $A82A
  1426.         EndM
  1427.     ELSE
  1428.         IMPORT_CFM_FUNCTION OSASetCurrentDialect
  1429.     ENDIF
  1430.  
  1431. ;
  1432. ;        OSAComponentFunctionInline(kOSASelectSetCurrentDialect, 2);
  1433. ;    
  1434. ;        Errors:
  1435. ;            badComponentInstance    invalid scripting component instance
  1436. ;            errOSASystemError
  1437. ;            errOSANoSuchDialect:    invalid dialectCode
  1438. ;
  1439. ;
  1440. ; pascal OSAError OSAGetCurrentDialect(ComponentInstance scriptingComponent, short *resultingDialectCode)
  1441. ;
  1442.     IF ¨ GENERATINGCFM THEN
  1443.         Macro
  1444.         _OSAGetCurrentDialect
  1445.             move.l              #$00040702,-(sp)
  1446.             moveq               #0,D0
  1447.             dc.w                $A82A
  1448.         EndM
  1449.     ELSE
  1450.         IMPORT_CFM_FUNCTION OSAGetCurrentDialect
  1451.     ENDIF
  1452.  
  1453. ;
  1454. ;        OSAComponentFunctionInline(kOSASelectGetCurrentDialect, 4);
  1455. ;    
  1456. ;        Errors:
  1457. ;            badComponentInstance    invalid scripting component instance
  1458. ;            errOSASystemError
  1459. ;
  1460. ;
  1461. ; pascal OSAError OSAAvailableDialects(ComponentInstance scriptingComponent, AEDesc *resultingDialectInfoList)
  1462. ;
  1463.     IF ¨ GENERATINGCFM THEN
  1464.         Macro
  1465.         _OSAAvailableDialects
  1466.             move.l              #$00040703,-(sp)
  1467.             moveq               #0,D0
  1468.             dc.w                $A82A
  1469.         EndM
  1470.     ELSE
  1471.         IMPORT_CFM_FUNCTION OSAAvailableDialects
  1472.     ENDIF
  1473.  
  1474. ;
  1475. ;        OSAComponentFunctionInline(kOSASelectAvailableDialects, 4);
  1476. ;        This call return an AEList containing information about each of the
  1477. ;        currently available dialects of a scripting component.  Each item
  1478. ;        is an AERecord of typeOSADialectInfo that contains at least the fields
  1479. ;        keyOSADialectName, keyOSADialectCode, KeyOSADialectLangCode and 
  1480. ;        keyOSADialectScriptCode.
  1481. ;    
  1482. ;        Errors:
  1483. ;            badComponentInstance    invalid scripting component instance
  1484. ;            errOSASystemError
  1485. ;
  1486. ;
  1487. ; pascal OSAError OSAGetDialectInfo(ComponentInstance scriptingComponent, short dialectCode, OSType selector, AEDesc *resultingDialectInfo)
  1488. ;
  1489.     IF ¨ GENERATINGCFM THEN
  1490.         Macro
  1491.         _OSAGetDialectInfo
  1492.             move.l              #$000A0704,-(sp)
  1493.             moveq               #0,D0
  1494.             dc.w                $A82A
  1495.         EndM
  1496.     ELSE
  1497.         IMPORT_CFM_FUNCTION OSAGetDialectInfo
  1498.     ENDIF
  1499.  
  1500. ;
  1501. ;        OSAComponentFunctionInline(kOSASelectGetDialectInfo, 10);
  1502. ;        This call gives information about the specified dialect of a scripting
  1503. ;        component. It returns an AEDesc whose type depends on the selector 
  1504. ;        specified. Available selectors are the same as the field keys for a
  1505. ;        dialect info record. The type of AEDesc returned is the same as the 
  1506. ;        type of the field that has same key as the selector.
  1507. ;    
  1508. ;        Errors:
  1509. ;            badComponentInstance    invalid scripting component instance
  1510. ;            errOSASystemError
  1511. ;             errOSABadSelector
  1512. ;            errOSANoSuchDialect:    invalid dialectCode
  1513. ;
  1514. ;
  1515. ; pascal OSAError OSAAvailableDialectCodeList(ComponentInstance scriptingComponent, AEDesc *resultingDialectCodeList)
  1516. ;
  1517.     IF ¨ GENERATINGCFM THEN
  1518.         Macro
  1519.         _OSAAvailableDialectCodeList
  1520.             move.l              #$00040705,-(sp)
  1521.             moveq               #0,D0
  1522.             dc.w                $A82A
  1523.         EndM
  1524.     ELSE
  1525.         IMPORT_CFM_FUNCTION OSAAvailableDialectCodeList
  1526.     ENDIF
  1527.  
  1528. ;
  1529. ;        OSAComponentFunctionInline(kOSASelectAvailableDialectCodeList, 4);
  1530. ;        This is alternative to OSAGetAvailableDialectCodeList. Use this call
  1531. ;        and  OSAGetDialectInfo to get information on dialects.
  1532. ;        This call return an AEList containing dialect code for each of the
  1533. ;        currently available dialects of a scripting component. Each dialect
  1534. ;        code is a short integer of type typeShortInteger.
  1535. ;    
  1536. ;        Errors:
  1537. ;            badComponentInstance    invalid scripting component instance
  1538. ;            errOSASystemError
  1539. ;
  1540. ;        Type of a dialect info record containing at least keyOSADialectName
  1541. ;        and keyOSADialectCode fields.
  1542. ;
  1543. ;        keys for dialect info record, also used as selectors to OSAGetDialectInfo.
  1544. ;
  1545. ;        Field of a typeOSADialectInfo record of typeChar.
  1546. ;        Field of a typeOSADialectInfo record of typeShortInteger.
  1547. ;        Field of a typeOSADialectInfo record of typeShortInteger.
  1548. ;        Field of a typeOSADialectInfo record of typeShortInteger.
  1549. ;
  1550. ;
  1551. ;*************************************************************************
  1552. ;    OSA Optional Event Handling Interface
  1553. ;**************************************************************************
  1554. ;    Scripting components that support the Event Handling interface have the 
  1555. ;    kOSASupportsEventHandling bit set in it's ComponentDescription.
  1556. ;*************************************************************************
  1557. ;
  1558. ;
  1559. ; pascal OSAError OSASetResumeDispatchProc(ComponentInstance scriptingComponent, AEEventHandlerUPP resumeDispatchProc, long refCon)
  1560. ;
  1561.     IF ¨ GENERATINGCFM THEN
  1562.         Macro
  1563.         _OSASetResumeDispatchProc
  1564.             move.l              #$00080801,-(sp)
  1565.             moveq               #0,D0
  1566.             dc.w                $A82A
  1567.         EndM
  1568.     ELSE
  1569.         IMPORT_CFM_FUNCTION OSASetResumeDispatchProc
  1570.     ENDIF
  1571.  
  1572. ;
  1573. ;        OSAComponentFunctionInline(kOSASelectSetResumeDispatchProc, 8);
  1574. ;        This function is used to set the ResumeDispatchProc that will be used
  1575. ;        by OSAExecuteEvent and OSADoEvent if either no event handler can be
  1576. ;        found in the context, or the context event hander "continues" control
  1577. ;        onward. The two constants kOSAUseStandardDispatch and kOSANoDispatch
  1578. ;        may also be passed to this routine indicating that the handler registered
  1579. ;        in the application with AEInstallEventHandler should be used, or no
  1580. ;        dispatch should occur, respectively.
  1581. ;    
  1582. ;        Errors:
  1583. ;            badComponentInstance    invalid scripting component instance
  1584. ;            errOSASystemError
  1585. ;
  1586.  
  1587. kOSAUseStandardDispatch            EQU        $FFFFFFFF
  1588. ;
  1589. ;        Special ResumeDispatchProc constant which may be passed to 
  1590. ;        OSASetResumeDispatchProc indicating that the handler registered
  1591. ;        in the application with AEInstallEventHandler should be used.
  1592. ;        
  1593. ;        NOTE:    Had to remove the cast (AEEventHandlerUPP).  The C compiler
  1594. ;                doesn't allow pointer types to be assigned to an enum.  All
  1595. ;                constants must be assigned as enums to translate properly to
  1596. ;                Pascal.
  1597. ;
  1598.  
  1599. kOSANoDispatch                    EQU        0
  1600. ;
  1601. ;        Special ResumeDispatchProc constant which may be passed to 
  1602. ;        OSASetResumeDispatchProc indicating that no dispatch should occur.
  1603. ;        
  1604. ;        NOTE:    Had to remove the cast (AEEventHandlerUPP).  The C compiler
  1605. ;                doesn't allow pointer types to be assigned to an enum.  All
  1606. ;                constants must be assigned as enums to translate properly to
  1607. ;                Pascal.
  1608. ;
  1609.  
  1610. kOSADontUsePhac                    EQU        $0001
  1611. ;
  1612. ;        Special refCon constant that may be given to OSASetResumeDispatchProc
  1613. ;        only when kOSAUseStandardDispatch is used as the ResumeDispatchProc.
  1614. ;        This causes the standard dispatch to be performed, except the phac
  1615. ;        handler is not called.  This is useful during tinkerability, when
  1616. ;        the phac handler is used to lookup a context associated with an event's 
  1617. ;        direct parameter, and call OSAExecuteEvent or OSADoEvent.  Failure to
  1618. ;        bypass the phac handler would result in an infinite loop.
  1619. ;
  1620. ;
  1621. ; pascal OSAError OSAGetResumeDispatchProc(ComponentInstance scriptingComponent, AEEventHandlerUPP *resumeDispatchProc, long *refCon)
  1622. ;
  1623.     IF ¨ GENERATINGCFM THEN
  1624.         Macro
  1625.         _OSAGetResumeDispatchProc
  1626.             move.l              #$00080802,-(sp)
  1627.             moveq               #0,D0
  1628.             dc.w                $A82A
  1629.         EndM
  1630.     ELSE
  1631.         IMPORT_CFM_FUNCTION OSAGetResumeDispatchProc
  1632.     ENDIF
  1633.  
  1634. ;
  1635. ;        OSAComponentFunctionInline(kOSASelectGetResumeDispatchProc, 8);
  1636. ;        Returns the registered ResumeDispatchProc.  If no ResumeDispatchProc has
  1637. ;        been registered, then kOSAUseStandardDispatch (the default) is returned.
  1638. ;    
  1639. ;        Errors:
  1640. ;            badComponentInstance    invalid scripting component instance
  1641. ;            errOSASystemError
  1642. ;
  1643. ;
  1644. ; pascal OSAError OSAExecuteEvent(ComponentInstance scriptingComponent, const AppleEvent *theAppleEvent, OSAID contextID, long modeFlags, OSAID *resultingScriptValueID)
  1645. ;
  1646.     IF ¨ GENERATINGCFM THEN
  1647.         Macro
  1648.         _OSAExecuteEvent
  1649.             move.l              #$00100803,-(sp)
  1650.             moveq               #0,D0
  1651.             dc.w                $A82A
  1652.         EndM
  1653.     ELSE
  1654.         IMPORT_CFM_FUNCTION OSAExecuteEvent
  1655.     ENDIF
  1656.  
  1657. ;
  1658. ;        OSAComponentFunctionInline(kOSASelectExecuteEvent, 16);
  1659. ;        This call is similar to OSAExecute except the initial command to
  1660. ;        execute comes in the form of an AppleEvent.  If the contextID
  1661. ;        defines any event handlers for that event, they are used to process
  1662. ;        the event.  If no event handler can be found in the context
  1663. ;        errAEEventNotHandled is returned.  If an event handler is found and
  1664. ;        the hander "continues" control onward, the ResumeDispatchProc
  1665. ;        (registered with OSASetResumeDispatchProc, above) is called given the
  1666. ;        AppleEvent.  The result is returned as a scriptValueID.
  1667. ;    
  1668. ;        Errors:
  1669. ;            badComponentInstance    invalid scripting component instance
  1670. ;            errOSASystemError
  1671. ;            errOSAInvalidID
  1672. ;            errOSAScriptError:        the executing script got an error
  1673. ;            errAEEventNotHandled:    no handler for event in contextID
  1674. ;    
  1675. ;        ModeFlags:
  1676. ;            kOSAModeNeverInteract
  1677. ;            kOSAModeCanInteract
  1678. ;            kOSAModeAlwaysInteract
  1679. ;            kOSAModeCantSwitchLayer
  1680. ;            kOSAModeDontReconnect
  1681. ;            kOSAModeDoRecord
  1682. ;
  1683. ;
  1684. ; pascal OSAError OSADoEvent(ComponentInstance scriptingComponent, const AppleEvent *theAppleEvent, OSAID contextID, long modeFlags, AppleEvent *reply)
  1685. ;
  1686.     IF ¨ GENERATINGCFM THEN
  1687.         Macro
  1688.         _OSADoEvent
  1689.             move.l              #$00100804,-(sp)
  1690.             moveq               #0,D0
  1691.             dc.w                $A82A
  1692.         EndM
  1693.     ELSE
  1694.         IMPORT_CFM_FUNCTION OSADoEvent
  1695.     ENDIF
  1696.  
  1697. ;
  1698. ;        OSAComponentFunctionInline(kOSASelectDoEvent, 16);
  1699. ;        This call is similar to OSADoScript except the initial command to
  1700. ;        execute comes in the form of an AppleEvent, and the result is an 
  1701. ;        AppleEvent reply record.  If the contextID defines any event handlers
  1702. ;        for that event, they are used to process the event.  If no event handler
  1703. ;        can be found in the context errAEEventNotHandled is returned.  If an
  1704. ;        event handler is found and the hander "continues" control onward, the
  1705. ;        ResumeDispatchProc (registered with OSASetResumeDispatchProc, above) is
  1706. ;        called given the AppleEvent.  The result is returned in the form of an
  1707. ;        AppleEvent reply descriptor. If at any time the script gets an error, or
  1708. ;        if the ResumeDispatchProc returns a reply event indicating an error,
  1709. ;        then the OSADoEvent call itself returns an error reply (i.e. OSADoEvent
  1710. ;        should never return errOSAScriptError).  Any error result returned by
  1711. ;        the ResumeDispatchProc will be returned by OSADoEvent.
  1712. ;    
  1713. ;        Errors:
  1714. ;            badComponentInstance    invalid scripting component instance
  1715. ;            errOSASystemError
  1716. ;            errOSAInvalidID
  1717. ;            errAEEventNotHandled:    no handler for event in contextID
  1718. ;    
  1719. ;        ModeFlags:
  1720. ;            kOSAModeNeverInteract
  1721. ;            kOSAModeCanInteract
  1722. ;            kOSAModeAlwaysInteract
  1723. ;            kOSAModeCantSwitchLayer
  1724. ;            kOSAModeDontReconnect
  1725. ;            kOSAModeDoRecord
  1726. ;
  1727. ;
  1728. ; pascal OSAError OSAMakeContext(ComponentInstance scriptingComponent, const AEDesc *contextName, OSAID parentContext, OSAID *resultingContextID)
  1729. ;
  1730.     IF ¨ GENERATINGCFM THEN
  1731.         Macro
  1732.         _OSAMakeContext
  1733.             move.l              #$000C0805,-(sp)
  1734.             moveq               #0,D0
  1735.             dc.w                $A82A
  1736.         EndM
  1737.     ELSE
  1738.         IMPORT_CFM_FUNCTION OSAMakeContext
  1739.     ENDIF
  1740.  
  1741. ;
  1742. ;        OSAComponentFunctionInline(kOSASelectMakeContext, 12);
  1743. ;        Makes a new empty context which may be passed to OSAExecute or 
  1744. ;        OSAExecuteEvent.  If contextName is typeNull, an unnamed context is
  1745. ;        created. If parentContext is kOSANullScript then the resulting context
  1746. ;        does not inherit bindings from any other context.
  1747. ;    
  1748. ;        Errors:
  1749. ;            badComponentInstance    invalid scripting component instance
  1750. ;            errOSASystemError
  1751. ;            errOSAInvalidID
  1752. ;            errAECoercionFail:        contextName is invalid
  1753. ;
  1754.     ENDIF
  1755.     ENDIF ; __OSA__ 
  1756.  
  1757.